DNS 網域名稱系統 (全名 : Domain Name System)

作者Meteoroid
進度完成
週次2021/4

歷史淺談


1983 年,由保羅·莫卡派喬斯( Paul Mockapetris )發明。

DNS 定義


DNS 是做為將域名和IP相互對應的一個分散式資料庫,能夠使人更方便地訪問網際網路。

紀錄類型


紀錄類型

代碼號碼描述功能
A1IPv4 位址紀錄傳回一個 32 位元的 IPv4 位址,最常用於對映主機名稱到 IP 位址,但也用於 DNSBL ( RFC1101 )等。
AAAA28IPv6 位址紀錄傳回一個 128 位元的 IPv6 位址,最常用於對映主機名稱到 IP 位址。
NS2名稱伺服器紀錄委託 DNS ( DNS zone ) 使用已提供的權威域名伺服器。
PTR12指標紀錄引導至一個規範名稱 ( Canonical Name )。與 CNAME 記錄不同,DNS 「不會」進行處理程式,只會回傳名稱。
CNAME5規範名稱紀錄是 DNS 的一種紀錄,用於將一個域名映射到另一個域名。CNAME必須指向另一個域名,而不能是IP。
SRV33服務位置紀錄廣義為服務定位記錄,被新式協定使用而避免產生特定協定的記錄。
無標題


DNS 的正向解析與反向解析

正向解析


根據域名查詢對應的 IP 地址

EX: 輸入 kazan.ru —> 10.0.0.10

反向解析


根據 IP 地址查詢對應的域名

EX: 輸入 10.0.0.10 —> kazan.ru

DNS 的域名結構

DNS 的域名從最頂層開始分別是:

1. 根域

2. 頂級域

3. 子域(後面就都是子域)

這裡我用大甲高工的網址來解析

DNS 實作


Windows Server 2019 實作

創建網域


要開始做DNS服務之前,請先安裝

Active Directory Domain Service DNS Server

安裝好之後請到右上旗幟的地方選取

Promote this server to a domain controller

選取到 Add a new forest 來新建一個網域,

這裡用48屆的題目來做範例,

題目要求創建一個 wsdomain.com.tw 的網域,

Root domain name 輸入 wsdomain.com.tw 之後就下一步,

依照題目要求打上密碼後就無腦下一步

看到下圖的畫面就是成功了

正向解析實作


先到右上的 Tools 找到並按下 DNS

之後在 Forward Lookup Zones 底下的 outside.out (根據你設定的網域名稱)

按下右鍵選擇 New Host ( A or AAAA )...

在 Name 的地方根據題目打上名稱 (48屆為 www)

IP address 為題目上的 IP

記得勾選 Create associated pointer (PTR) record

繼續下一步就完成了,完成後應該會和右圖差不多

反向解析實作


先到右上的 Tools 找到並按下 DNS

之後在 Reverse Lookup Zones 按下右鍵選擇 New Zone...

之後就一直下一步,並在 Network ID : 打上題目給的 IP 前三個

繼續下一步就完成了,完成後應該會和右圖差不多

Debian 10 實作


開始前請先安裝 vim bind9

(安裝指令為 apt-get install vim apt-get install bind9)

Network 設定


輸入 vim /etc/network/interfaces 進入網路設定介面,

將該介面改成右圖(依照題目來設定)

  1. auto ens33 設定網卡
  1. iface ens33 inet static 成固定 IP (浮動 IP 請將 static 改成 dhcp 且下面就不用打了)
  1. address 192.168.100.201 就是 IP 啦
  1. netmask 255.255.255.0 就是遮罩啦
  1. dns-nameserverss 127.0.0.1 指向自己,請用127.0.0.1
  1. gateway 192.168.100.1 就是預設閘道啦 題目沒說請不要設定,設了會跟分數過意不去

Bind 實作


輸入指令 vim /etc/bind/db.127 vim /etc/bind/dblocal進入介面後,

將你的介面改成右圖(依題目來設定)

下面的為DNS紀錄要輸入的指令

# 常見的正解檔 RR 相關資訊
[domain]    IN  [[RR type]  [RR data]]
主機名稱.   IN  A           IPv4 的 IP 位址
主機名稱.   IN  AAAA        IPv6 的 IP 位址
領域名稱.   IN  NS          管理這個領域名稱的伺服器主機名字.
領域名稱.   IN  SOA         管理這個領域名稱的七個重要參數(容後說明)
領域名稱.   IN  MX          順序數字  接收郵件的伺服器主機名字
主機別名.   IN  CNAME       實際代表這個主機別名的主機名字.
# 反解
最右邊的 IP   IN  PTR       主機名稱. <--- 這個點必須加

db.127

db.local